package com.run2code.starter.lock.config;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * <pre>
 * 这个类是一个简单的Java Bean，主要用于存储和获取分布式锁的超时时间配置，也是给调用方一个修改默认加锁时间的机会。
 * 通过@ConfigurationProperties注解，Spring Boot可以自动将配置文件（如application.properties或application.yml）中前缀为"com.run2code.starter"的属性绑定到这个类的字段上。
 * 例如，如果在配置文件中有一个属性com.run2code.starter.lock-timeout=60，那么这个值就会自动设置到lockTimeout字段上。
 * <pre/>
 *
 * 关注公众号【奔跑的码畜】，一起进步不迷路
 *
 * @author 第七人格
 * @date 2024/06/17
 */
// 使用@ConfigurationProperties注解，这允许我们将配置文件中的属性绑定到这个类的字段上。
// prefix属性定义了配置文件中属性的前缀，即"com.run2code.starter"。
@ConfigurationProperties(
        prefix = "com.run2code.starter"
)
public class DistributedLockProperties {
    // 定义一个长整型字段lockTimeout，用来存储锁的超时时间，单位可能是秒或者其他时间单位，
    // 默认值被设置为30L。
    private long lockTimeout = 30L;

    // 类的默认构造函数，没有参数，也没有执行任何操作。
    public DistributedLockProperties() {
    }

    // 这是一个getter方法，用于获取lockTimeout字段的值。
    public long getLockTimeout() {
        return this.lockTimeout;
    }

    // 这是一个setter方法，用于设置lockTimeout字段的值。
    // 方法接受一个长整型参数lockTimeout，并将其值赋给类的lockTimeout字段。
    public void setLockTimeout(final long lockTimeout) {
        this.lockTimeout = lockTimeout;
    }
}
